package pool 
{
	/**
	 * 抽象的池中对象
	 * @author gcxk721
	 */
	public class AbstractPoolObject implements IPoolObject
	{
	
		/**
		 * 使用状态
		 */
		protected var m_state : Boolean = false;
		
		public function AbstractPoolObject() 
		{
			
		}
		
		/**
		 * 取得对象状态
		 */
		public function isUsed() : Boolean
		{
			return m_state;
		}
		
		/**
		 * 池对象使用
		 */
		public function used() : Boolean
		{
			if (m_state)
			{
				return false;
			}
			m_state = true;
			return true;
		}
		
		/**
		 * 池对象释放
		 */
		public function released() : Boolean
		{
			if (!m_state)
			{
				return false;
			}
			m_state = false;
			return true;
		}
		
		/**
		 * 摧毁对象
		 */
		public function destroy() : void
		{
			
		}
		
	}

}